The basic functionality of a computer is dictated by the type of operating system it uses. Various operating systems exist in the market place, including Solaris from Sun Microsystems, Macintosh from Apple Computers, the “Windows” Operating Systems, e.g., Windows 95/98 and Windows NT, from Microsoft, and Linux. The different types of operating systems will be referred to herein as “platforms”. Prior to the popularity of the Internet, software developers wrote programs specifically designed for individual platforms. Thus, a program written for one platform could not be run on another. However, the advent of the Internet made cross-platform compatibility a necessity.
Prior art FIG. 1 illustrates a conceptional arrangement wherein a first computer (3) running the Solaris platform and a second computer (5) running the Windows 98 platform are connected to a server (9) via the internet (7). A resource provider using the server (9) might be any type of business, governmental, or educational institution. The resource provider has a need to be able to provide its resources to both the user of the Solaris platform and the user of the Windows 98 platform, but does not have the luxury of being able to custom design its content for the individual platforms.
The Java™ programming language was developed by Sun Microsystems to address this problem. The Java™ programming language was designed to be simple for the programmer to use, yet able to run securely over a network and work on a wide range of platforms.
Referring to FIG. 2, in order to create a Java™ application, the developer first writes the application in human-readable Java™ source code. As used herein, the term “application” refers to both true Java™ applications and Java™ “applets” which are essentially small applications usually embedded in a web page. In the example shown, the application “Program” (11) is created as a human-readable text file. The name of this text file is given the required five-character extension “java”.
The Java™ compiler or “javac” (13) is used to compile the source code into a machine-readable binary file (15). The text file will contain Java™ language commands, e.g., “import java.awt.frame”. A discussion of the Java™ language itself is beyond the scope of this document. However, complete information regarding the Java™ programming language and the Java™ platform are available from Sun Microsystems both in print and via the internet at java.sun.com. The resulting binary file (15) will automatically receive the same file name as the source text file, but will use “.class” as the trailing extension. The Java™ runtime environment incorporates a Java™ “virtual machine” (JVM) (16) to convert the “.class” byte codes into actual machine executions (17). The machine executions (like drawing windows, buttons, and user prompt fields) will occur in accordance to the application developer's code instructions. Because Sun Microsystems specifically designed the JVM (16) to run on different platforms, a single set of “.class” byte codes will execute on any platform where a JVM (16) has been installed. An Internet browser such as Netscape and Microsoft Explorer that incorporates a JVM (16) is called a “java-enabled” browser.
The cross-platform architecture of the Java™ programming language is illustrated in FIG. 3, which shows how the Java™ language enables cross-platform applications over the Internet. In the figure, the computer (3) running the Solaris platform and the computer (5) running the Windows 98 platform are both provided with the JVM (16). The resource provider creates a Java™ application using the Java™ software development kit (“SDK”) (23) and makes the compiled Java™ byte codes available on the server (9), which in this example is running on a Windows NT platform. Through standard internet protocols, both the computer (3) and the computer (5) may obtain a copy of the same byte code and, despite the difference in platforms, execute the byte code through their respective JVM.
As the popularity of the Internet has increased, users have become accustomed to many different types of interfaces. Thus, aesthetic conformity has become less of an issue. At the same time, speed, functionality, and versatility have become increasingly important. Therefore, the Java™ 2 standard edition SDK includes a new “package” for the developer called “swing” that is essentially library of “lightweight components”. This new package is simply one library that is possible; other libraries may be created and in fact are available from third parties. Swing provides the developer with the option and flexibility to use lightweight components and thus improves performance in a given application. A detailed discussion of the use of the Java™ abstract windowing toolkit (AWT) and the Swing package is beyond the scope of this document. Complete documentation is available from Sun Microsystems both in print and at the web site java.sun.com.
Forte™ for Java™ products (90), formerly called NetBeans, are visual programming environments written entirely in Java™ and Swing. These products are commonly regarded as the leading Integrated Development Environment (IDE). IDEs are easily customizable and extensible, as well as platform independent, as is illustrated in FIG. 5. Forte™ for Java™ (90) includes a powerful Form Editor (92), integrated full-featured text editor (94), visual GUI design (96), debugger (98), and compiler (100). Forte™ for Java™ (90) is also completely modular. Also, Forte™ for Java™ (90) is built around a set of Open Application Programming Interface (API's) which allow it to be easily extensible. This means that the IDE functionality for editing, debugging, GUI generation, etc. is represented in modules that can be downloaded and updated dynamically as is illustrated in FIG. 5. Instead of waiting months for a completely new release, as soon as new versions (104) or new modules (106) are available, users can update that individual version or module via the Update Center (102).